type Act = Int->Int;

def concat(var a:Act->Act, var b:Int->Act):Int->Act {
    return $var x:Int => a(b(x));
}

def make(var a:Int):Act {
    return $var x:Int => x + a;
}

def apply(var a:Act):Act {
    return $var x:Int => a(x);
}

var add3 = concat(apply, make)(3);
print(add3(1));

